/*************************************************************************
 *File Name: mycd.c
 *Author: 义文杰
 *Mail: 1165589184@qq.com
 *Created Time: 2022年06月08日 星期三 19时36分17秒
 ************************************************************************/

#include "server.h"

/* 实现功能：
 * cd + 当前目录下文件名，无论正确与否，都会给出提示信息
 * */
char* CdDir(char* FileName){

    char buf[100] = {0}; // 用来接收filename
    strcpy(buf,FileName);

    struct stat statbuf;
    int ret = stat(buf, &statbuf); // 获取filename文件的状态

    if(-1 == ret){ // -1代表这个文件不存在，出错误了
        return "The file does not exist.\n";
    }else{ // ret = 0 
        switch(statbuf.st_mode & S_IFMT){
        case S_IFBLK:
        case S_IFCHR:
        case S_IFIFO:
        case S_IFLNK:
        case S_IFREG:
        case S_IFSOCK:return "The file is not a directory.\n"; // 当filename不是目录就返回一段提示文字
        case S_IFDIR:ret = chdir(buf); // 如果是目录文件就改变当前的工作目录
                     ERROR_CHECK(ret, -1, "chdir");
                     char* cwd = getcwd(NULL, 0);
                     return cwd; // 打印一下当前路径，给予提示信息
        }
    }
}
